<template>
	<div class="login-container">
		<div class="left">
			<div class="title-box">
				<img src="@/assets/img/login_icon.png" alt="">
				<span class="title">黑马面面</span>
				<span class="line"></span>
				<span class="sub-title">用户登录</span>
			</div>
			<el-form :model="ruleForm" :rules="rules" ref="ruleForm" style="margin-top: 40px;">
				<el-form-item prop="phone">
					<el-input prefix-icon="el-icon-user" placeholder="请输入手机号" v-model="ruleForm.phone"></el-input>
				</el-form-item>
				<el-form-item prop="password">
					<el-input prefix-icon="el-icon-lock" placeholder="请输入密码" v-model="ruleForm.password" show-password></el-input>
				</el-form-item>
				<el-row>
					<el-col :span="17" style="margin-right: 10px;">
						<el-form-item prop="code">
							<el-input prefix-icon="el-icon-key" placeholder="请输入验证码" v-model="ruleForm.code"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="6">
						<img :src="loginCodeURL" @click="changeImgeUrl" alt="" style="width: 100%; height: 40px;">
					</el-col>
				</el-row>
				<el-form-item prop="checked">
					<el-checkbox v-model="ruleForm.checked"></el-checkbox>&nbsp;
					我已阅读并同意<el-link type="primary">用户协议</el-link>和<el-link type="primary">隐私条款</el-link>
				</el-form-item>
				<el-form-item>
					<el-button type="primary" @click="login" style="width:100%">登 录</el-button>
				</el-form-item>
				<el-form-item>
					<el-button type="primary" style="width:100%">注 册</el-button>
				</el-form-item>
			</el-form>
			</el-form>
		</div>
		<div class="right">
			<img src="@/assets/img/login_bg.png" alt="">
		</div>
	</div>
</template>

<script>
	export default {
		data() {
			return {
				loginCodeURL: 'http://127.0.0.1/heimamm/public/captcha?type=login',
				ruleForm: {
					phone: '',
					password: '',
					code: '',
					checked: false
				},
				rules: {
					phone: [{
						validator: (rule, value, callback) => {
							if (!value) {
								return callback(new Error('手机号不能为空'));
							}
							// 手机的正则校验
							const reg = /^1[3-9][0-9]{9}$/
							if (!reg.test(value)) {
								return callback(new Error('手机号不合法'))
							}
							callback();
						},
						trigger: 'blur'
					}],
					password: [{
							required: true, // 非空
							message: '密码不能为空', // 提示文字
							trigger: 'blur' // 触发时机
						},
						{
							min: 6,
							max: 16,
							message: '长度在 6 到 16 个字符',
							trigger: 'blur'
						}
					],
					code: [{
						required: true, // 非空
						message: '验证码不能为空', // 提示文字
						trigger: 'blur' // 触发时机
					}],
					checked: [{
						validator: (rule, value, callback) => {
							value ? callback() : callback(new Error('必须勾选用户协议'))
						},
						trigger: 'change' // 触发时机
					}]
				}
			}
		},
		methods: {
			changeImgeUrl() {
				this.loginCodeURL = `http://127.0.0.1/heimamm/public/captcha?type=login&t=${new Date() - 0}`
			},
			login(){
				this.$refs.ruleForm.validate(async valid => {
					if(!valid) return;
					const res = await this.$axios.post('/login',this.ruleForm);
					// console.log(res)
					if(res.code === 200){
						this.$message.success('登陆成功!');
						localStorage.setItem('heimamm62_token',res.data.token);
						this.$router.push('/layout')
					}else {
						this.$message.error(res.message);
						this.changeImgeUrl();
					}
				})
			}
		}
	}
</script>

<style lang="less">
	.login-container {
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: space-around;
		background: linear-gradient(225deg, #1493fa, #01c6fa);

		.left {
			width: 478px;
			height: 550px;
			background: #f5f5f5;
			padding: 48px;

			.title-box {
				display: flex;
				align-items: center;

				img {
					width: 22px;
					height: 17px;
					margin-right: 16px;
				}

				.title {
					font-size: 24px;
					margin-right: 14px;
				}

				.line {
					width: 1px;
					background-color: #c7c7c7;
					height: 27px;
					margin-right: 12px;
				}

				.sub-title {
					font-size: 22px;
				}
			}
		}
	}
</style>
